﻿using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Windows.Data;

namespace CPETwit.WPFClient.Converter
{
    public class TimeConverter : IValueConverter
    {
        /// <summary>
        /// Convertit une valeur. 
        /// </summary>
        /// <returns>
        /// Une valeur convertie.Si la méthode retourne null, la valeur Null valide est utilisée.
        /// </returns>
        /// <param name="value">Valeur produite par la source de liaison.</param><param name="targetType">Type de la propriété de cible de liaison.</param><param name="parameter">Paramètre de convertisseur à utiliser.</param><param name="culture">Culture à utiliser dans le convertisseur.</param>
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if(value is DateTime)
            {
                DateTime? dateTime = value as DateTime?;
                double seconds = DateTime.Now.Subtract(dateTime.Value).TotalSeconds;
                TimeSpan dt = TimeSpan.FromSeconds(seconds);

                //if (dt.Year != 0)
                //    return dt.Year + " an" + (dt.Year > 0 ? " s" : string.Empty);
                //if (dt.Month != 0)
                //    return dt.Month + " mois";
                if (dt.Days != 0)
                    return dt.Days + " jour" + (dt.Days > 1 ? "s" : string.Empty);
                if (dt.Hours != 0)
                    return dt.Hours + " heure" + (dt.Hours > 1 ? "s" : string.Empty);
                if (dt.Minutes != 0)
                    return dt.Minutes + " min";
                if (dt.Seconds != 0)
                    return dt.Seconds + " s";
            }
            return string.Empty;
        }

        /// <summary>
        /// Convertit une valeur. 
        /// </summary>
        /// <returns>
        /// Une valeur convertie.Si la méthode retourne null, la valeur Null valide est utilisée.
        /// </returns>
        /// <param name="value">Valeur produite par la cible de liaison.</param><param name="targetType">Type dans lequel convertir.</param><param name="parameter">Paramètre de convertisseur à utiliser.</param><param name="culture">Culture à utiliser dans le convertisseur.</param>
        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }
}
